博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
登录之后更新导航
阅读量:4947 次
发布时间:2019-06-11

本文共 2736 字,大约阅读时间需要 9 分钟。

  1.  

    用上下文处理器app_context_processor定义函数
    1. 获取session中保存的值
    2. 返回字典
  2. 在父模板中更新导航,插入登录状态判断代码。
    1. 注意用{% ... %}表示指令。
    2. {
      { }}表示变量
  3. 完成注销功能。
    1. 清除session
    2. 跳转
      from flask import Flask,render_template,request,redirect,url_for,sessionfrom flask_sqlalchemy import SQLAlchemyimport configapp = Flask(__name__)app.config.from_object("config")db=SQLAlchemy(app)class User(db.Model):    __tablename__ = "user"    id = db.Column(db.Integer,primary_key=True,autoincrement=True)    username = db.Column(db.String(20),nullable=False)    password = db.Column(db.String(20),nullable=False)    nickname = db.Column(db.String(20))#db.create_all()@app.route('/')def vi():    return render_template("base.html")@app.route('/first')def first():    return render_template("first.html")@app.route("/login",methods=["GET","POST"])def login():    if request.method == "GET":      return render_template("login.html")    else:        usern = request.form.get("usern")        passw = request.form.get("userp")        user = User.query.filter(User.username==usern).first()        if user:            if user.password == passw:                session["user"] = usern                # session.permanent = True                return redirect(url_for("first"))            else:                return "密码错误,请重新输入!"        else:            return "用户名不存在!"@app.route("/regist",methods=["GET","POST"])def regist():    if request.method == "GET":        return render_template("regist.html")    else:        usern1 = request.form.get("newn")        passw1 = request.form.get("newp")        user = User.query.filter(User.username==usern1).first()        if user:            return "用户名已存在!"        else:            user = User(username = usern1,password = passw1)            db.session.add(user)            db.session.commit()            return redirect(url_for("login"))@app.context_processordef context():    usern=session.get("user")    if usern:        return{
      'username':usern} else: return {}@app.route('/clear')def clear(): session.clear() return redirect(url_for('first'))if __name__ == '__main__': app.run(debug=True)
      import osSQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@127.0.0.1:3306/mis_db?charset=utf8'SQLALCHEMY_TRACK_MODIFICATIONS = FalseSECRET_KEY = os.urandom(24)
          
      {% block title %}{% endblock %}宋茜后援团
      {% block head %}{% endblock %}
      {% block main %}{% endblock %}

       

       

       

转载于:https://www.cnblogs.com/yin-yeah/p/7889764.html

你可能感兴趣的文章
电源防反接保护电路
查看>>
stm32 堆和栈(stm32 Heap & Stack)
查看>>
SpringMVC从入门到精通之第三章
查看>>
JS基础-dom操作
查看>>
【转】Android详细的对话框AlertDialog.Builder使用方法
查看>>
Unite Beijing 2015大型活动
查看>>
loading加载的代码
查看>>
PHP框架CI CodeIgniter 的log_message开启日志记录方法
查看>>
arraylist
查看>>
关于poi导出excel三种方式HSSFWorkbook,SXSSFWorkbook,csv的总结
查看>>
zoj 1649 Rescue (BFS)(转载)
查看>>
371. Sum of Two Integers java solutions
查看>>
2124: 等差子序列 - BZOJ
查看>>
3529: [Sdoi2014]数表 - BZOJ
查看>>
自我介绍
查看>>
字符串匹配算法综述
查看>>
Linux centosVMware shell 管道符和作业控制、shell变量、环境变量配置文件
查看>>
在程序被送入后台时,向 iOS 借点时间,来完成一个长期任务
查看>>
【设计模式】工厂模式
查看>>
两个表格中数据不用是一一对应关系--来筛选不同数据,或者相同数据
查看>>